#include "Pattern.hpp"

using namespace std;

static inline void simulation(int taille_simulation, int ordre_blocs,float to)
{
 
  /*Choisir une distribution des allocations*/  
  
  SourceBinaire *b = FactoryDistribution::getSourceBinaireBernouillie(to) ;
  IAllocDistribution *d =NULL;  
  
  d=FactoryDistribution::getDistributionUniformeAlloc(ordre_blocs);
  d->initGenerateur();
  
  Pattern p(taille_simulation,d,b);
  p.lancerSimulation();
  
  cout << "Ecriture des mesures dans le fichier" <<endl;
  printf("# %f ",1-to);
  p.dumpMeasures();
  
  /**
   *supprimer les objets
   */
  delete d;
  delete b;
}

#include <string.h>
#define TAILLE 30000
int main(int argc,char**argv)
{
  float to=1;
  int taille=10000;
  if(argc >= 3)
    {
      to=atof(argv[1]);
      taille=atoi(argv[2]);
    }
  
  printf("Une simulation avec %d blocs, taux d'écriture de %f\n",taille,to);
  simulation(taille,1,1-to);
  return 0;
}
